package com.hm.admin.service;


import com.hm.admin.dao.mapper.HmAdminRoleMapper;
import com.hm.admin.domain.HmAdminRole;
import com.hm.admin.domain.HmRoleExample;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

@Service
public class HmAdminRoleService {
    @Resource
    private HmAdminRoleMapper roleMapper;


    public Set<String> queryByIds(Integer[] roleIds) {
        Set<String> roles = new HashSet<String>();
        if(roleIds.length == 0){
            return roles;
        }

        HmRoleExample example = new HmRoleExample();
        example.or().andIdIn(Arrays.asList(roleIds)).andEnabledEqualTo(true).andDeletedEqualTo(false);
        List<HmAdminRole> roleList = roleMapper.selectByExample(example);

        for(HmAdminRole role : roleList){
            roles.add(role.getName());
        }

        return roles;

    }

//    public List<HmAdminRole> querySelective(String roleName, Integer page, Integer size, String sort, String order) {
//        HmRoleExample example = new HmRoleExample();
//        HmRoleExample.Criteria criteria = example.createCriteria();
//
//        if (!StringUtils.isEmpty(roleName)) {
//            criteria.andNameEqualTo("%" + roleName + "%");
//        }
//        criteria.andDeletedEqualTo(false);
//
//        if (!StringUtils.isEmpty(sort) && !StringUtils.isEmpty(order)) {
//            example.setOrderByClause(sort + " " + order);
//        }
//
//        PageHelper.startPage(page, size);
//        return roleMapper.selectByExample(example);
//    }
//
//    public int countSelective(String roleName, Integer page, Integer size, String sort, String order) {
//        HmRoleExample example = new HmRoleExample();
//        HmRoleExample.Criteria criteria = example.createCriteria();
//
//        if (!StringUtils.isEmpty(roleName)) {
//            criteria.andNameEqualTo("%" + roleName + "%");
//        }
//        criteria.andDeletedEqualTo(false);
//
//        if (!StringUtils.isEmpty(sort) && !StringUtils.isEmpty(order)) {
//            example.setOrderByClause(sort + " " + order);
//        }
//
//        PageHelper.startPage(page, size);
//        return (int)roleMapper.countByExample(example);
//    }
//
//    public HmAdminRole findById(Integer id) {
//        return roleMapper.selectByPrimaryKey(id);
//    }
//
//    public void add(HmAdminRole role) {
//        role.setAddTime(LocalDateTime.now());
//        role.setUpdateTime(LocalDateTime.now());
//        roleMapper.insertSelective(role);
//    }
//
//    public void deleteById(Integer id) {
//        roleMapper.logicalDeleteByPrimaryKey(id);
//    }
//
//    public void updateById(HmAdminRole role) {
//        role.setUpdateTime(LocalDateTime.now());
//        roleMapper.updateByPrimaryKeySelective(role);
//    }
//
//    public boolean checkExist(String name) {
//        HmRoleExample example = new HmRoleExample();
//        example.or().andNameEqualTo(name).andDeletedEqualTo(false);
//        return roleMapper.countByExample(example) != 0;
//    }
//
//    public List<HmAdminRole> queryAll() {
//        HmRoleExample example = new HmRoleExample();
//        example.or().andDeletedEqualTo(false);
//        return roleMapper.selectByExample(example);
//    }
}
